package demo.day02

// 24 kotlin语言的简略写法
fun main() {
    // 第一种方式
    loginApi1(USER_NAME_A, USER_PWD_A,{
        msg:String,code:Int->println("最终登录情况如下===>msg:$msg,code:$code")
    })
    // 第二种方式
    loginApi1(USER_NAME_A, USER_PWD_A, responseResult = {
            msg:String,code:Int->println("最终登录情况如下===>msg:$msg,code:$code")
    })
    // 第三种方式
    loginApi1(USER_NAME_A, USER_PWD_A) { msg: String, code: Int ->
        println("最终登录情况如下===>msg:$msg,code:$code")
    }
}

const val USER_NAME_A = "xiaopang"
const val USER_PWD_A = "123456"

// 登录API

private fun loginApi1(userName: String, userPwd: String, responseResult: (String, Int) -> Unit) {
    if (userName.isEmpty() || userPwd.isEmpty()) {
        TODO("用户名或者密码为空") // 出现问题终止程序
    }else{
        if (userName.length > 3 && userPwd.length > 3) {
            // 调用服务器
            if (webServiceLoginApi(userName, userPwd)) {
                println("登录成功，可以操作软件了")
                responseResult("login success", 200)
            } else {
                // 登录失败的逻辑处理
                println("登录失败，请重试")
                responseResult("login error", 404)
            }
        } else {
            TODO("用户名密码长度不合格")
        }
    }

}

private fun webServiceLoginApi(name: String, pwd: String): Boolean {
    // kt的if是表达式 很灵活 java的if是语句 有局限性
    return name == USER_NAME_A && pwd == USER_PWD_A
}